import { getCard, setGroupCard } from '../../models/index.js'

const reg = new RegExp('^#?(检验卡密|使用卡密|卡密帮助)\\s*(.*)?$')

Bot.on('message', e => {
    if (e.message[0].type === 'text') {
        const regRet = reg.exec(e.message[0].text)
        if (regRet) {
            const msg = []
            switch (regRet[1]) {
                case '检验卡密':
                    if (regRet[2]) {
                        const i = getCard(regRet[2])
                        if (i) {
                            msg.push(`卡密: ${i.card}\n剩余天数: ${i.day}\n状态: ${i.status == 0 ? '未使用' : `已使用`}`)
                        } else {
                            msg.push(`未找到卡密`)
                        }
                    } else {
                        msg.push('请输入卡密')
                    }
                    break;
                case '使用卡密':
                    if (regRet[2]) {
                        var [card, group_id] = regRet[2].split('*')
                        if (!group_id) {
                            if (e.isGroup) {
                                group_id = e.group_id
                            } else {
                                msg.push('请在群聊中使用或带上群号')
                                break
                            }
                        }
                        group_id = Number(group_id) || String(group_id)
                        if (!getCard(card)) {
                            msg.push('未找到卡密')
                        } else {
                            setGroupCard(card, group_id, 'add')
                            msg.push('使用成功')
                        }

                    } else {
                        msg.push('请输入卡密')
                    }
                    break
                case '卡密帮助':
                    msg.push(...['【检验卡密 abcdefghijklemop】检查卡密的有效性\n',
                        '【使用卡密 abcdefghijklemop】群聊使用,为本群充值\n',
                        '【使用卡密 abcdefghijklemop*123456789】为群123456789充值\n',
                        '【卡密帮助】查看充值帮助内容'])
                    break
                default:
                    break;
            }
            if (msg.length > 0) {
                if (e.reply) {
                    e.reply(msg)
                } else if (e.group) {
                    e.group.sendMsg(msg)
                } else if (e.friend) {
                    e.friend.sendMsg(msg)
                } else if(e.group_id) {
                    Bot[e.uin||e.self_id].pickGroup(e.group_id).sendMsg(msg)
                } else if (e.user_id) {
                    Bot[e.uin||e.self_id].pickFriend(e.user_id).sendMsg(msg)
                }
            }
        }
    }
})